// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()
const _ = db.command

//引用TcbRouter
const TcbRouter = require('tcb-router')

/**
 * 成功的数据结构
 */
const getSuccessData = (data = {}) => ({
  status: 200,
  data: {
    status: 0,
    data
  }
})

/**
 * 失败的数据结构
 */
const getFailData = (data = {}) => ({
  status: 401,
  data: {
    ...data
  }
})

// 云函数入口函数
exports.main = async (event, context) => {
  const app = new TcbRouter({
    event
  })

  /**
   * 获取分类列表
   * 
   * 这个云函数的设计非常浪费，但是没办法。
   */
  app.router('/manage/category/list', async (ctx, next) => {

    const {
      parentId
    } = event.other

    const condition = '-1' === parentId ? {} : {
      parentId
    }

    try {

      const {
        data
      } = await db.collection('categorys').where(condition).get()

      ctx.body = getSuccessData(data)

    } catch (error) {

      ctx.body = getFailData({
        status: 1,
        msg: '获取分类列表异常, 请重新尝试',
        error
      })

    }
  })

  /**
   * 获取公司信息
   */
  app.router('/manage/getCompanyInfo', async (ctx, next) => {

    try {

      const {
        data
      } = await db.collection('yczs-info').where({}).get()

      const {
        phone,
        address
      } = data[0]

      ctx.body = getSuccessData({
        phone,
        address
      })

    } catch (error) {

      ctx.body = getFailData({
        msg: '获取公司信息错误',
        error
      })

    }
  })

  return app.serve()
}